import argparse
import os
import glob
import cv2


def parse_args():
    parser = argparse.ArgumentParser(description='对图像进行尺度变换')

    parser.add_argument('--dir', default=r'F:\work_dir\project\matchTemplate\week3\test_clipped',
                        help='待裁剪图片的目录')
    parser.add_argument('--out-dir', default=r'\work_dir\test_img_resized',
                        help='输出的图片目录')
    parser.add_argument('--h', help='预期将图片裁剪到的尺寸', type=int)
    parser.add_argument('--ratio', help='宽高比', type=float)

    args = parser.parse_args()
    return args


def main():
    args = parse_args()

    if not os.path.exists(args.out_dir):
        os.makedirs(args.out_dir)

    img_names = glob.glob(os.path.join(args.dir, '*.jpg'))
    for img_name in img_names:
        img = cv2.resize(cv2.imread(img_name), dsize=(int(args.ratio*args.h), args.h), interpolation=cv2.INTER_CUBIC)  # 4x4像素邻域的双三次插值
        cv2.imwrite(os.path.join(args.out_dir, img_name.split('/')[-1]), img)


if __name__ == '__main__':
    main()
